<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>ProgramByDesign</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/ProgramByDesign"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-ProgramByDesign rootpage-ProgramByDesign skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">ProgramByDesign</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p>The <b>ProgramByDesign</b> (formerly <b>TeachScheme!</b>) project is an outreach effort of the <a href="Racket_(programming_language)" title="Racket (programming language)">PLT</a> research group. The goal is to train college faculty, high school <a href="Teacher" title="Teacher">teachers</a>, and possibly even middle school teachers, in <a href="Computer_programming" title="Computer programming">programming</a> and <a href="Computing" title="Computing">computing</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p><a href="Matthias_Felleisen" title="Matthias Felleisen">Matthias Felleisen</a> and <a href="Racket_(programming_language)" title="Racket (programming language)">PLT</a> began the effort in January 1995, one day after the <i><a href="Symposium_on_Principles_of_Programming_Languages" title="Symposium on Principles of Programming Languages">Symposium on Principles of Programming Languages</a></i> (POPL), in response to Felleisen's observations of his <a href="Rice_University" title="Rice University">Rice University</a> freshmen students and the algebra <a href="Curriculum" title="Curriculum">curriculum</a> of local public schools. His objective was to use <a href="Functional_programming" title="Functional programming">functional programming</a> to make <a href="Mathematics" title="Mathematics">mathematics</a> come alive and help inject design knowledge into the introductory <a href="Computer_science" title="Computer science">computer science</a> curriculum.
</p><p>The effort began using a <a href="Programming_language" title="Programming language">programming language</a> named PLT Scheme which was a version of the language <a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a>, which is a <a href="Dialect_(computing)" class="mw-redirect" title="Dialect (computing)">dialect</a> of <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a>.
</p><p>The group raised funds from several private <a href="Foundation_(nonprofit)" title="Foundation (nonprofit)">foundations</a>, the <a href="United_States_Department_of_Education" title="United States Department of Education">United States Department of Education</a>, and the <a href="National_Science_Foundation" title="National Science Foundation">National Science Foundation</a> to create:
</p>
<ul><li>Software appropriate for novices in functional programming</li>
<li>Courseware: curricula, lecture notes, exercises, mini-projects</li>
<li>Teacher training camps</li></ul>
<p>Over ten years, it ran several dozen one-week <a href="Training_workshop" title="Training workshop">training workshops</a> for some 550 teachers. In 2005, the TeachScheme! project ran an Anniversary workshop where two dozen teachers presented their work with students.
</p><p>In 2010, PLT renamed its major programming language from <i>PLT Scheme</i> to <i><a href="Racket_(programming_language)" title="Racket (programming language)">Racket</a></i>, and <i>DrScheme</i> to <i>DrRacket</i>. A little later it renamed <i>TeachScheme!</i> to <i>ProgramByDesign</i>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Functional_programming,_computing,_and_algebra">Functional programming, computing, and algebra</h2></div>
<p>The starting point of ProgramByDesign is the observation that students act as computers in <a href="Primary_school" title="Primary school">primary school</a> courses on arithmetic, and in <a href="Middle_school" title="Middle school">middle school</a> and <a href="Secondary_school" title="Secondary school">secondary school</a> courses on <a href="Pre-algebra" title="Pre-algebra">pre-algebra</a> and <a href="Algebra" title="Algebra">algebra</a>. Teachers program them with rules and run specific problems via exercises. The key is that students execute purely functional programs.
</p><p>If students can be turned into teachers that create functional programs and run them on computers, this content can be reinforced and show students how writing down mathematics, and functional programs, creates lively animated scenes and even computer games.
</p><p>Here is an example:
</p>
<div class="mw-highlight mw-highlight-lang-racket mw-content-ltr" dir="ltr"><pre><span class="p">(</span><span class="k">require</span><span class="w"> </span><span class="n">2htdp/universe</span><span class="p">)</span>
<span class="p">(</span><span class="k">require</span><span class="w"> </span><span class="n">2htdp/image</span><span class="p">)</span>
<span class="c1">;; create an image from the current time</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="p">(</span><span class="n">create-image</span><span class="w"> </span><span class="n">t</span><span class="p">)</span>
<span class="w"> </span><span class="p">(</span><span class="n">place-image</span><span class="w"> </span><span class="n">APPLE</span><span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="m">1/10</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="n">t</span><span class="p">)</span><span class="w"> </span><span class="n">SPACE</span><span class="p">))</span>
<span class="c1">;; names for basic images</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="n">APPLE</span><span class="w"> </span><span class="p">(</span><span class="n">circle</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="s2">"solid"</span><span class="w"> </span><span class="s2">"red"</span><span class="p">))</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="n">SPACE</span><span class="w"> </span><span class="p">(</span><span class="n">empty-scene</span><span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="mi">100</span><span class="p">))</span>
<span class="p">(</span><span class="n">animate</span><span class="w"> </span><span class="n">create-image</span><span class="p">)</span>
</pre></div>
<p>This short program simulates an apple falling from the top to the bottom of a small white canvas. It consists of three parts:
</p>
<ul><li>A function definition for create-image, which is a one-line function in mathematics, assuming an algebra of images with place-image, circle, and empty-scene have been introduced</li>
<li>Two abbreviations, where names are equated with some value, just as in "let x be 5" in an algebra text</li>
<li>One line for running the program</li></ul>
<p>A teacher can explain create-image as easily as any ordinary function in an algebra course. For example, one can first draw a table with two rows and <i>n</i> columns where each column contains <i>t</i> at the top and an appropriate image at the bottom. That is, if the numbers increase from left to right, then on each image the red dot is a little bit lower.
</p><p>Finally the animate line applies the given function, create-image, at the rate of 28 ticks per second to 0, 1, 2, 3, and so on. The resulting images are displayed on the computer monitor at the same pace. That's how movies are made.
</p><p>The background needed for such an example is little more than knowledge about making movies, about the algebra of pictures in DrRacket (which is like the one for numbers), and minimal pre-algebra. The ProgramByDesign project claims, however, that children would have more fun with such <i>live</i> functions than with algebraic expressions that count the number of garden tiles [see Prentice Hall books for grades 8-9].
</p><p>The ProgramByDesign project proposes that both traditional mathematics and science courses could benefit from integrating this form of programming. In contrast to the traditional <a href="BASIC" title="BASIC">BASIC</a> or <a href="Visual_Basic" title="Visual Basic">Visual Basic</a> blocks in such books, a Racket program consists of as many lines as the mathematics. Moving between the mathematics and the program is thus straightforward. Better still, the meaning of the two are the same. DrRacket's algebraic stepper can illustrate how Racket evaluates the program as if it were a sixth or seventh grade student, step by step, using plain algebra.
</p>
<div class="mw-heading mw-heading2"><h2 id="Functional_Programming,_Computing_and_Design_in_Programming_101">Functional Programming, Computing and Design in Programming 101</h2></div>
<p>For the introductory curriculum on programming, the ProgramByDesign project emphasizes that courses should focus on the role of systematic design. Even if students never program again, they should see how helpful a systematic approach to problem solving is. This should help them whether they become programmers or doctors or journalists or photographers. Thus, an introductory course in programming would not be perceived as a place where students learn about the syntax of the currently fashionable (and soon-to-be-obsolete) programming languages, but a place where they can learn something widely applicable.
</p><p>The key design element of the ProgramByDesign curriculum is the <i>design recipe</i>. It has two dimensions: the process dimension and the data dimension.
</p><p>Along the process dimension students learn that there are six steps to designing a (simple) program, before they can run it and others can use it:
</p>
<ol><li>Analysing problems with the goal of describing the classes of data that go into the program and come out;</li>
<li>Reformulating the problem statement as a concise purpose statement</li>
<li>Creating examples that illustrate the purpose statement and that serve as criteria for success;</li>
<li>Organizing givens, also called a template or inventory</li>
<li>Coding</li>
<li>Creating a test suite from examples to ensure the program works properly on small inputs.</li></ol>
<p>As in <a href="Test-driven_development" title="Test-driven development">test-driven development</a>, test cases are written <i>before</i> coding, as part of requirements analysis, rather than afterward as part of testing.
</p><p>Almost any human endeavour can benefit from clearly understanding the problem, defining criteria for success, analyzing the available resources and givens, developing a proposed solution, and checking it against the criteria, in that order.
</p><p>For example, a journalist benefits from a similar process: figuring out the major concepts in a story; creating a headline; lining up examples and specific data; organizing the article about the story of the givens and how the story unfolded; writing; and fact checking.
</p><p>The data dimension can be summarized by the maxim <i>the shape of the data determines the shape of the code and tests.</i> For example, if the input or output data type has three variants, a test suite should have at least one test case from each variant, and program code will probably contain a three-way conditional (whether explicit or hidden in a polymorphic dispatch). If the input or output data type has three fields, a test suite will have to specify values for those three fields, and program code will have to refer to those three fields. If the input or output data type has a simple <i>base case</i> and one or more self-referential variants, the test suite should include a base case and one or more non-base cases, and the program code will probably have a base case and one or more self-referential cases, isomorphic to the data type. The technique of <a href="Recursion" title="Recursion">recursion</a>, rather than being mysterious and scary, is simply applying already-learned methods to a self-referential data type.
</p><p>Organizing the givens is the task of translating the descriptions of data into a program skeleton. Each form of description determines a specific form of program organization. The transformation is nearly mechanical and helps the students focus on the creative part of the task.
</p><p><a href="How_to_Design_Programs" title="How to Design Programs">How to Design Programs</a> (HTDP) is the text book authored by the core of the ProgramByDesign group.<sup id="cite_ref-HTDP_1-0" class="reference"><a href="#cite_note-HTDP-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> A third edition is being prepared.<sup id="cite_ref-HTDP3_2-0" class="reference"><a href="#cite_note-HTDP3-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Programming_language_choice">Programming language choice</h2></div>
<p>The name TeachScheme! appears to imply that this design recipe requires Scheme (now <a href="Racket_(programming_language)" title="Racket (programming language)">Racket</a>) and is teachable only with Scheme. Neither conclusion is true. Members of PLT and their trainees have successfully applied the design recipe in <a href="Assembly_language" title="Assembly language">assembly language</a>, <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="ML_(programming_language)" title="ML (programming language)">ML</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, and other programming languages, and with geometry, biology, and poetry courses. The fundamental idea of ProgramByDesign is to stress programming as a design activity. This misconception is one of the reasons for the renaming actions taken in 2010.
</p><p>To get started, the ProgramByDesign project has produced three essential elements:
</p>
<ul><li>A series of successively more powerful and permissive teaching languages, which are dialects of Racket, matched to the design recipe but with error reporting matched to the student's level (for example, many things that are legal in standard Racket, but which a beginning student doesn't need, are flagged as errors in the Beginning Student level)</li>
<li>A beginner-friendly, freely-downloadable, pedagogic programming environment, an <a href="Integrated_development_environment" title="Integrated development environment">integrated development environment</a> named DrRacket, that enforces these language levels</li>
<li>A curriculum, encoded mostly in the book How to Design Programs,<sup id="cite_ref-HTDP_1-1" class="reference"><a href="#cite_note-HTDP-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> which third edition is in the works.<sup id="cite_ref-HTDP3_2-1" class="reference"><a href="#cite_note-HTDP3-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li></ul>
<p>Their choice of Racket reflects their belief that Racket is a good language for a small team with little funding (relative to Java) to validate their conjectures. The PLT group has always tried to ensure that the ideas remain portable to other contexts.
</p>
<div class="mw-heading mw-heading2"><h2 id="For_Java">For Java</h2></div>
<p>Over the past few years, the team has also created a second part or phase of the curriculum. It demonstrates how the same design recipe ideas apply to a complex <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> language, such as <a href="Java_(programming_language)" title="Java (programming language)">Java</a>. The recipes are applied initially in a functional paradigm, then introducing object-oriented concepts such as polymorphism and inheritance, and then introducing the imperative methods that are idiomatic in mainstream Java.
</p><p>A part of the team has a grant from the National Science Foundation to conduct field tests in colleges and high schools. <a href="Professional_development" title="Professional development">Professional development</a> workshops took place in the summer of 2007, 2008, 2009, and 2010. This part of the project is dubbed ReachJava; the accompanying book is tentatively titled "How to Design Classes."
</p>
<div class="mw-heading mw-heading2"><h2 id="Bootstrap">Bootstrap</h2></div>
<p>In 2006 PLT, at Northeastern University and <a href="Citizen_Schools" title="Citizen Schools">Citizen Schools</a> from Boston, made joint efforts to reach out to inner city students with after-school programs. Citizen Schools is a nationwide organization that matches volunteers with after-school program sites and gets them started with scripted curricula. The goal of the effort is to translate the material into a sixth-grade curriculum. The first few tests were a great success in Boston.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> The effect on the mathematics courses of this program has encouraged <a href="Microsoft" title="Microsoft">Microsoft</a> and <a href="Google" title="Google">Google</a> to fund a national scale-up effort, developing materials for training teachers and creating sites in Texas, California, and other volunteer cities.
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-HTDP-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-HTDP_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-HTDP_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFFelleisenFindlerFlattKrishnamurthi2018" class="citation web cs1"><a href="Matthias_Felleisen" title="Matthias Felleisen">Felleisen, Matthias</a>; <a href="Robert_Bruce_Findler" title="Robert Bruce Findler">Findler, Robert Bruce</a>; <a href="Matthew_Flatt" title="Matthew Flatt">Flatt, Matthew</a>; <a href="Shriram_Krishnamurthi" title="Shriram Krishnamurthi">Krishnamurthi, Shriram</a> (2018-01-06). <a rel="nofollow" class="external text" href="https://htdp.org/">"How to Design Programs"</a>. MIT Press<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-01-08</span></span>.</cite></span>
</li>
<li id="cite_note-HTDP3-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-HTDP3_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-HTDP3_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFFelleisen" class="citation web cs1"><a href="Matthias_Felleisen" title="Matthias Felleisen">Felleisen, Matthias</a>. <a rel="nofollow" class="external text" href="http://felleisen.org/matthias/HtDP3e/">"How to Design Programs, Third Edition"</a>. <i>Felleisen.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-01-08</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="http://www.boston.com/yourtown/news/dorchester/2011/05/bootstrap_program_pulls_up_rox.html">"Bootstrap program pulls up Roxbury, Dorchester middle-schoolers"</a>. <i>Boston.com</i>. 2011-05-03<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-09-29</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFKrishnamurthi2009" class="citation web cs1">Krishnamurthi, Shriram (March 2009). <a rel="nofollow" class="external text" href="http://www.cs.brown.edu/~sk/Publications/Talks/Moby-Bootstrap/">"The Moby Scheme Compiler for Smartphones"</a>. <i>Brown University, Computer Science Department</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2019-01-08</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="http://programbydesign.org">Official website</a></span></span></li>
<li><a rel="nofollow" class="external text" href="http://www.racket-lang.org/">Racket</a></li>
<li><a rel="nofollow" class="external text" href="http://www.htdp.org/"><i>How to Design Programs</i></a></li>
<li><a rel="nofollow" class="external text" href="http://www.bootstrapworld.org/">Bootstrap</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Lisp_programming880" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Lisp_programming880" style="font-size:114%;margin:0 4em"><a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp programming</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Features</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Garbage_collection_(computer_science)" title="Garbage collection (computer science)">Automatic storage management</a></li>
<li><a href="Conditional_(computer_programming)" title="Conditional (computer programming)">Conditionals</a></li>
<li><a href="Dynamic_typing" class="mw-redirect" title="Dynamic typing">Dynamic typing</a></li>
<li><a href="Higher-order_function" title="Higher-order function">Higher-order functions</a></li>
<li><a href="Linked_list" title="Linked list">Linked lists</a></li>
<li><a href="Macro_(computer_science)" title="Macro (computer science)">Macros</a></li>
<li><a href="M-expression" title="M-expression">M-expressions</a> (deprecated)</li>
<li><a href="Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">Read–eval–print loop</a></li>
<li><a href="Recursion_(computer_science)" title="Recursion (computer science)">Recursion</a></li>
<li><a href="S-expression" title="S-expression">S-expressions</a></li>
<li><a href="Self-hosting_(compilers)" title="Self-hosting (compilers)">Self-hosting</a> <a href="Compiler" title="Compiler">compiler</a></li>
<li><a href="Tree_data_structure" class="mw-redirect" title="Tree data structure">Tree data structures</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object-oriented_programming" title="Object-oriented programming">Object</a> systems</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Common_Lisp_Object_System" title="Common Lisp Object System">Common Lisp Object System</a> (CLOS)</li>
<li><a href="CommonLoops" title="CommonLoops">CommonLoops</a></li>
<li><a href="Flavors_(programming_language)" title="Flavors (programming language)">Flavors</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_implementation" title="Programming language implementation">Implementations</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Technical_standard" title="Technical standard">Standardized</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Lisp" title="Common Lisp">Common<br>Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Allegro_Common_Lisp" title="Allegro Common Lisp">Allegro Common Lisp</a></li>
<li><a href="Armed_Bear_Common_Lisp" class="mw-redirect" title="Armed Bear Common Lisp">Armed Bear Common Lisp</a> (ABCL)</li>
<li><a href="CLISP" title="CLISP">CLISP</a></li>
<li><a href="Clozure_CL" title="Clozure CL">Clozure CL</a></li>
<li><a href="CMU_Common_Lisp" title="CMU Common Lisp">CMU Common Lisp</a> (CMUCL)</li>
<li><a href="Corman_Common_Lisp" class="mw-redirect" title="Corman Common Lisp">Corman Common Lisp</a></li>
<li><a href="Embeddable_Common_Lisp" title="Embeddable Common Lisp">Embeddable Common Lisp</a> (ECL)</li>
<li><a href="GNU_Common_Lisp" title="GNU Common Lisp">GNU Common Lisp</a> (GCL)</li>
<li><a href="LispWorks" title="LispWorks">LispWorks</a></li>
<li><a href="Macintosh_Common_Lisp" title="Macintosh Common Lisp">Macintosh Common Lisp</a></li>
<li><a href="Mocl" title="Mocl">Mocl</a></li>
<li>Movitz</li>
<li><a href="Poplog" title="Poplog">Poplog</a></li>
<li><a href="Steel_Bank_Common_Lisp" title="Steel Bank Common Lisp">Steel Bank Common Lisp</a> (SBCL)</li>
<li><a href="Genera_(operating_system)" title="Genera (operating system)">Symbolics Common Lisp</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><i><a href="History_of_the_Scheme_programming_language" title="History of the Scheme programming language">History</a></i></li>
<li><a href="Bigloo" title="Bigloo">Bigloo</a></li>
<li><a href="Chez_Scheme" title="Chez Scheme">Chez Scheme</a></li>
<li><a href="Chicken_(Scheme_implementation)" title="Chicken (Scheme implementation)">Chicken</a></li>
<li><a href="Gambit_(scheme_implementation)" class="mw-redirect" title="Gambit (scheme implementation)">Gambit</a></li>
<li><a href="Game_Oriented_Assembly_Lisp" title="Game Oriented Assembly Lisp">Game Oriented Assembly Lisp</a> (GOAL)</li>
<li><a href="GNU_Guile" title="GNU Guile">GNU Guile</a></li>
<li><a href="Ikarus_(Scheme_implementation)" title="Ikarus (Scheme implementation)">Ikarus</a></li>
<li><a href="JScheme" title="JScheme">JScheme</a></li>
<li><a href="Kawa_(Scheme_implementation)" title="Kawa (Scheme implementation)">Kawa</a></li>
<li><a href="MIT/GNU_Scheme" title="MIT/GNU Scheme">MIT/GNU Scheme</a></li>
<li><a href="MultiLisp" title="MultiLisp">MultiLisp</a></li>
<li><a href="Pico_(programming_language)" title="Pico (programming language)">Pico</a></li>
<li>Pocket Scheme</li>
<li><a href="Racket_(programming_language)" title="Racket (programming language)">Racket</a> (<a href="Racket_features" title="Racket features">features</a>)</li>
<li><a href="Scheme_48" title="Scheme 48">Scheme 48</a></li>
<li><a href="SCM_(Scheme_implementation)" title="SCM (Scheme implementation)">SCM</a></li>
<li><a href="SIOD" title="SIOD">SIOD</a></li>
<li><a href="T_(programming_language)" title="T (programming language)">T</a></li>
<li><a href="TinyScheme" title="TinyScheme">TinyScheme</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="ISLISP" title="ISLISP">ISLISP</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="OpenLisp" title="OpenLisp">OpenLisp</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Unstandardized</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Logo_(programming_language)" title="Logo (programming language)">Logo</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MSWLogo" title="MSWLogo">MSWLogo</a></li>
<li><a href="NetLogo" title="NetLogo">NetLogo</a></li>
<li><a href="StarLogo" title="StarLogo">StarLogo</a></li>
<li><a href="UCBLogo" title="UCBLogo">UCBLogo</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="POP-11" title="POP-11">POP</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="COWSEL" title="COWSEL">COWSEL</a> (POP-1)</li>
<li><a href="POP-2" title="POP-2">POP-2</a></li>
<li><a href="POP-11" title="POP-11">POP-11</a></li></ul>
</div></td></tr></tbody></table><div>
<ul><li><a href="Arc_(programming_language)" title="Arc (programming language)">Arc</a></li>
<li><a href="AutoLISP" title="AutoLISP">AutoLISP</a></li>
<li><a href="BBN_LISP" title="BBN LISP">BBN LISP</a></li>
<li><a href="Clojure" title="Clojure">Clojure</a></li>
<li><a href="Dylan_(programming_language)" title="Dylan (programming language)">Dylan</a> (<a href="Apple_Dylan" title="Apple Dylan">Apple</a>, <i><a href="History_of_the_Dylan_programming_language" title="History of the Dylan programming language">history</a></i>)</li>
<li><a href="Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a></li>
<li><a href="EuLisp" title="EuLisp">EuLisp</a></li>
<li><a href="Franz_Lisp" title="Franz Lisp">Franz Lisp</a>, <a href="PC-LISP" title="PC-LISP">PC-LISP</a></li>
<li><a href="Hy_(programming_language)" title="Hy (programming language)">Hy</a></li>
<li><a href="Interlisp" title="Interlisp">Interlisp</a></li>
<li><a href="Knowledge_Engineering_Environment" title="Knowledge Engineering Environment">Knowledge Engineering Environment</a></li>
<li><a href="*Lisp" title="*Lisp">*Lisp</a></li>
<li><a href="LeLisp" class="mw-redirect" title="LeLisp">LeLisp</a></li>
<li><a href="LFE_(programming_language)" title="LFE (programming language)">LFE</a></li>
<li><a href="LISP_2" title="LISP 2">LISP 2</a></li>
<li><a href="Lisp_Machine_Lisp" title="Lisp Machine Lisp">Lisp Machine Lisp</a></li>
<li><a href="Lispkit_Lisp" title="Lispkit Lisp">Lispkit Lisp</a></li>
<li><a href="Maclisp" title="Maclisp">Maclisp</a></li>
<li><a href="MDL_(programming_language)" title="MDL (programming language)">MDL</a></li>
<li><a href="MLisp" title="MLisp">MLisp</a></li>
<li><a href="NewLISP" title="NewLISP">newLISP</a></li>
<li><a href="NIL_(programming_language)" title="NIL (programming language)">NIL</a></li>
<li><a href="PC-LISP" title="PC-LISP">PC-LISP</a></li>
<li><a href="Picolisp" class="mw-redirect" title="Picolisp">Picolisp</a></li>
<li><a href="Portable_Standard_Lisp" title="Portable Standard Lisp">Portable Standard Lisp</a></li>
<li><a href="RPL_(programming_language)" title="RPL (programming language)">RPL</a></li>
<li><a href="S-1_Lisp" title="S-1 Lisp">S-1 Lisp</a></li>
<li><a href="Cadence_SKILL" title="Cadence SKILL">SKILL</a></li>
<li><a href="Spice_Lisp" title="Spice Lisp">Spice Lisp</a></li>
<li><a href="Zetalisp" class="mw-redirect" title="Zetalisp">Zetalisp</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Operating_system" title="Operating system">Operating system</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<li><b><a href="Lisp_(programming_language)#Operating_systems" title="Lisp (programming language)">List</a></b></li>
<li><a href="Common_Lisp_Interface_Manager" title="Common Lisp Interface Manager">Common Lisp Interface Manager</a>, <a href="McCLIM" title="McCLIM">McCLIM</a></li>
<li><a href="Genera_(operating_system)" title="Genera (operating system)">Genera</a></li>
<li><a href="Scsh" title="Scsh">Scsh</a></li>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_hardware" title="Computer hardware">Hardware</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Lisp_machine" title="Lisp machine">Lisp machine</a>
<ul><li><a href="TI_Explorer" class="mw-redirect" title="TI Explorer">TI Explorer</a></li></ul></li>
<li><a href="Space-cadet_keyboard" title="Space-cadet keyboard">Space-cadet keyboard</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Community_of_practice" title="Community of practice">Community<br>of practice</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Technical standards</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Scheme_Requests_for_Implementation" title="Scheme Requests for Implementation">Scheme Requests for Implementation</a></li>
<li><a href="Common_Lisp_HyperSpec" title="Common Lisp HyperSpec">Common Lisp HyperSpec</a></li>
<li><a href="X3J13" title="X3J13">X3J13</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Books</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Common_Lisp_the_Language" title="Common Lisp the Language">Common Lisp the Language</a></li>
<li><a href="How_to_Design_Programs" title="How to Design Programs">How to Design Programs</a> (HTDP)</li>
<li><a href="On_Lisp" title="On Lisp">On Lisp</a></li>
<li><a href="Practical_Common_Lisp" title="Practical Common Lisp">Practical Common Lisp</a></li>
<li><a href="Structure_and_Interpretation_of_Computer_Programs" title="Structure and Interpretation of Computer Programs">Structure and Interpretation of Computer Programs</a> (SICP)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Curriculum</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Business</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Apple_Inc." title="Apple Inc.">Apple Computer</a></li>
<li><a href="BBN_Technologies" class="mw-redirect" title="BBN Technologies">Bolt, Beranek and Newman</a></li>
<li><a href="Harlequin_(software_company)" title="Harlequin (software company)">Harlequin</a></li>
<li><a href="Lucid_Inc." title="Lucid Inc.">Lucid Inc.</a></li>
<li><a href="Symbolics" title="Symbolics">Symbolics</a></li>
<li><a href="Xanalys" title="Xanalys">Xanalys</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">Massachusetts Institute of Technology</a> (MIT)</li>
<li><a href="MIT_Computer_Science_and_Artificial_Intelligence_Laboratory" title="MIT Computer Science and Artificial Intelligence Laboratory">MIT Computer Science and Artificial Intelligence Laboratory</a> (CSAIL)</li>
<li><a href="Stanford_University_centers_and_institutes#Stanford_Artificial_Intelligence_Laboratory" title="Stanford University centers and institutes">Stanford Artificial Intelligence Laboratory</a></li>
<li><a href="University_of_California%2C_Berkeley" title="University of California, Berkeley">University of California, Berkeley</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Edmund_Berkeley" title="Edmund Berkeley">Edmund Berkeley</a></li>
<li><a href="Daniel_G._Bobrow" title="Daniel G. Bobrow">Daniel G. Bobrow</a></li>
<li><a href="William_Clinger_(computer_scientist)" title="William Clinger (computer scientist)">William Clinger</a></li>
<li><a href="R._Kent_Dybvig" title="R. Kent Dybvig">R. Kent Dybvig</a></li>
<li><a href="Matthias_Felleisen" title="Matthias Felleisen">Matthias Felleisen</a></li>
<li><a href="Robert_Bruce_Findler" title="Robert Bruce Findler">Robert Bruce Findler</a></li>
<li><a href="Matthew_Flatt" title="Matthew Flatt">Matthew Flatt</a></li>
<li><a href="Phyllis_Fox" title="Phyllis Fox">Phyllis Fox</a></li>
<li><a href="Paul_Graham_(programmer)" title="Paul Graham (programmer)">Paul Graham</a></li>
<li><a href="Richard_Greenblatt_(programmer)" title="Richard Greenblatt (programmer)">Richard Greenblatt</a></li>
<li>Timothy P. Hart</li>
<li><a href="Louis_Hodes" title="Louis Hodes">Louis Hodes</a></li>
<li>Mike Levin</li>
<li><a href="David_Luckham" title="David Luckham">David Luckham</a></li>
<li><a href="John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a></li>
<li><a href="Robert_Tappan_Morris" title="Robert Tappan Morris">Robert Tappan Morris</a></li>
<li><a href="Joel_Moses" title="Joel Moses">Joel Moses</a></li>
<li><a href="David_Park_(computer_scientist)" title="David Park (computer scientist)">David Park</a></li>
<li><a href="Steve_Russell_(computer_scientist)" title="Steve Russell (computer scientist)">Steve Russell</a></li>
<li><a href="Richard_Stallman" title="Richard Stallman">Richard Stallman</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Scott_Fahlman" title="Scott Fahlman">Scott Fahlman</a></li>
<li><a href="Richard_P._Gabriel" title="Richard P. Gabriel">Richard P. Gabriel</a></li>
<li><a href="Philip_Greenspun" title="Philip Greenspun">Philip Greenspun</a> (<a href="Greenspun's_tenth_rule" title="Greenspun's tenth rule">10th rule</a>)</li>
<li><a href="David_A._Moon" title="David A. Moon">David A. Moon</a></li>
<li><a href="Kent_Pitman" title="Kent Pitman">Kent Pitman</a></li>
<li><a href="Guy_L._Steele_Jr." title="Guy L. Steele Jr.">Guy L. Steele Jr.</a></li>
<li><a href="Daniel_Weinreb" title="Daniel Weinreb">Daniel Weinreb</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Matthias_Felleisen" title="Matthias Felleisen">Matthias Felleisen</a></li>
<li><a href="Shriram_Krishnamurthi" title="Shriram Krishnamurthi">Shriram Krishnamurthi</a></li>
<li><a href="Guy_L._Steele_Jr." title="Guy L. Steele Jr.">Guy L. Steele Jr.</a></li>
<li><a href="Gerald_Jay_Sussman" title="Gerald Jay Sussman">Gerald Jay Sussman</a></li>
<li><a href="Julie_Sussman" class="mw-redirect" title="Julie Sussman">Julie Sussman</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Logo_(programming_language)" title="Logo (programming language)">Logo</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Hal_Abelson" title="Hal Abelson">Hal Abelson</a></li>
<li><a href="Denison_Bollay" title="Denison Bollay">Denison Bollay</a></li>
<li><a href="Wally_Feurzeig" title="Wally Feurzeig">Wally Feurzeig</a></li>
<li><a href="Brian_Harvey_(lecturer)" title="Brian Harvey (lecturer)">Brian Harvey</a></li>
<li><a href="Seymour_Papert" title="Seymour Papert">Seymour Papert</a></li>
<li><a href="Mitchel_Resnick" title="Mitchel Resnick">Mitchel Resnick</a></li>
<li><a href="Cynthia_Solomon" title="Cynthia Solomon">Cynthia Solomon</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="POP-11" title="POP-11">POP</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Rod_Burstall" title="Rod Burstall">Rod Burstall</a></li>
<li><a href="Robin_Popplestone" title="Robin Popplestone">Robin Popplestone</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="noviewer" typeof="mw:File"><span title="List-Class article"></span></span> <b><a href="List_of_Lisp-family_programming_languages" title="List of Lisp-family programming languages">List</a></b> <span class="noviewer" typeof="mw:File"></span> <b><a href="https://en.wikibooks.org/wiki/Subject:Lisp_programming_language" class="extiw external" title="wikibooks:Subject:Lisp programming language">Books</a></b> <span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <b><a href="https://commons.wikimedia.org/wiki/Category:Lisp_(programming_language)" class="extiw external" title="commons:Category:Lisp (programming language)">Commons</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category</b> <span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category</b></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2022-06-25" href="https://en.wikipedia.org/wiki/?title=ProgramByDesign&oldid=1095013735">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>